Color matching is performed between an input device such as a scanner or digital camera and an output device such as a monitor or printer by using a profile, which is data representing the characteristics of color conversion between color input/output devices. For example, the profile for a printer output is created by the method described below.
First, on the basis of RGB values (CMYK values), which are color signals in color space dependent upon the printer, a prescribed number of color patches of these colors are output by the printer and the color patches are measured by colorimetry to obtain XYZ values (or Lab values), which are color signals in a color space that is not dependent upon the printer. As a result, the relationship between the RGB values and XYZ values is found.
Next, by utilizing the obtained relationship from the RGB values to XYZ values, masking coefficients are decided by an iterative method or the like or a mapping from the RGB values to the XYZ values is obtained, whereby a relationship from the XYZ values (or Lab values) to the RGB values (or CMYK values), which is the relationship in the opposite direction, is obtained as color correction data.
In a case where a relationship from the RGB values (or CMYK values) to the XYZ values (or Lab values) is obtained in the above-described profile creation processing, the greater the number of samples such as color patches, the higher the precision. However, printing out samples of all colors in RGB color space is unrealistic. Accordingly, the following methods are available to obtain the relationship from RGB values (or CMYK values) to XYZ values (Lab values):
(1) A method in which basic colors such as RGB are measured by colorimetry and the XYZ values are found by the Neugebauer equations, which use these colors as tristimulus values.
(2) A method in which color patches distanced apart equally in color space are measured by colorimetry to find the relationship between RGB values and XYZ values, and a similar relationship is found by estimating colorimetric values through linear interpolation with regard to colors intermediate the color patches.
(3) A method, which is similar to the method (2) above, in which curvilinear interpolation is performed to raise precision with regard to the relationship obtained by colorimetric measurement of the color patches (for example, see the specification of Japanese Patent Application Laid-Open No. 63-254888).
(4) A method, which is similar to the method (3) above, in which colors are predicted by setting up a non-linear masking model in order to raise precision with regard to the relationship obtained by colorimetric measurement of the color patches.
Method (1) estimates XYZ values with regard to any CYM values by the Neugebauer equations, which employ XYZ values as tristimulus values with respect to eight points of colors cyan (C), magenta (M), yellow (Y), red (R), green (G), blue (B), black (B) and white (W), which is the color of the printing medium, and each area ratio of the basic colors such as CMY. This method is equivalent to a three-dimensional interpolation in which the eight points of the basic colors serve as apices. However, since the actual color conversion characteristics are more complex, this method generally is inferior in terms of precision.
Methods (2) and (3) both utilize color patches that are equidistant in color space. Coordinates of equidistant grid points (e.g., 9×9×9) in RGB space produced by a printer signal are selected as the values of these color patches. In general, the precision of color estimation is improved if the number of grid points is increased. However, the time needed for measurement is prolonged because the number of colorimetric measurements is also increased.
For example, consider obtaining CMYKcm values (a color profile) corresponding to the RGB values of a certain monitor, where c represents light cyan and m represents light magenta. A monitor RGB value for obtaining the CMYKcm value is indicated at P10 in FIG. 8. In a gamut mapping for mapping monitor RGB values to colors (L*a*b* values) in the printer gamut, it is assumed that mapping has been carried out so as to maintain saturation before and after mapping. In such case, the position on the printer gamut corresponding to P10 is P20, which is situated on L31 of the actual printer gamut. Because the printer gamut is formed by tetrahedral interpolation using samplings, as indicated by the broken line in FIG. 8, the position corresponding to P20 is shifted onto L30. In other words, in accordance with the method of measuring color patches that are equidistant in color space, the place where printing should be performed by the CMYKcm combination (the left side in FIG. 8) on L31 shifts to an ink changeover portion (the left side in FIG. 8) on L30. The result is a decline in tonality. The details of FIG. 8 will be set forth in the description of an embodiment below.
Further, method (2) is such that when colorimetric values between color patches are estimated, XYZ values (or Lab values) obtained by colorimetry are stored at the corresponding grid points of a look-up table (referred to as a “LUT” below) and XYZ values are estimated with respect to RGB values or CMYK values intermediate the color patches by a linear interpolation such as eight-point interpolation or four-point interpolation using eight points or four points that are nearby. Such linear interpolation generally exhibits a comparatively large error with respect to the actual characteristics because the results of interpolation lack smoothness. Accordingly, if the results of estimation by method (2) are stored in an AtoB0 tag of an ICC (International Color Consortium) profile, a print result will contain a large quantity of noise when it is previewed on a monitor. Further, if an input value such as an RGB value indicates coordinates identical with those of a grid point, the output value becomes a colorimetric value per se and the colorimetric error prevailing at the time of colorimetry is reflected in the output directly.
As opposed to method (2), method (3) uses a LUT in a manner similar to that of method (2) and performs a curvilinear interpolation using three or more nearby points with respect to RGB values or CMYK values. However, since this method focuses on points in the vicinity of the input value, the colorimetric error at the time of colorimetry becomes relatively large with respect to each of these nearby points and the colorimetric error cannot be mitigated satisfactorily.
Method (4) sets up a non-linear masking model and therefore can predict colors with a comparatively high precision. However, this level of prediction precision is unsatisfactory and results in inadequate tonality in a system, which is employed in an inkjet printer for, e.g., the six colors CMYKcm, in which the way signal values corresponding to the C, M, Y, K, c and m inks are changed over is quite different.